Skip to content

[Dependency Analysis] Fix buildHealth Failure on Kotlin 2.4.0 Metadata - #23151

Open
ParaskP7 wants to merge 1 commit into
trunkfrom
da/fix-buildhealth-failure-on-kotlin-2-4-metadata
Open

[Dependency Analysis] Fix buildHealth Failure on Kotlin 2.4.0 Metadata#23151
ParaskP7 wants to merge 1 commit into
trunkfrom
da/fix-buildhealth-failure-on-kotlin-2-4-metadata

Conversation

@ParaskP7

@ParaskP7 ParaskP7 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Closes: AINFRA-2722


Description

The weekly scheduled buildHealth job (dependency analysis) has been failing on trunk since #23086, which bumped Kotlin from 2.3.21 to 2.4.10. With the project itself now compiled by Kotlin 2.4.x, its own modules emit kotlin.Metadata version 2.4.0, and that metadata version lands on the classpath the plugin inspects. The dependency analysis plugin (DAGP) bundles a kotlin-metadata-jvm reader capped at Kotlin metadata 2.3.0, so its ExplodeJarTask fails with Provided Metadata instance has version 2.4.0, while maximum supported version is 2.3.0 whenever it inspects one of those jars.

This PR fixes the failure without reverting the Kotlin bump:

  • Forces a newer kotlin-metadata-jvm onto the root buildscript classpath, tracked to this project's own Kotlin version, so DAGP's noIsolation() worker resolves the newer reader instead of its own bundled 2.2.21. This is the interim workaround from dependency-analysis-gradle-plugin#1661, endorsed by the plugin author, removable once upstream isolates this dependency onto its own worker classpath (#1719).

Notes:

  • Root cause verified via Buildkite build history (last-green build #27391 vs first-red #27529), and by git-tracing the trigger to #23086, which lifted the project's own Kotlin to 2.4.x so its modules now emit kotlin.Metadata version 2.4.0. Every red run fails on the same task, :WordPress:explodeJarJetpackDebug (latest red #27686).
  • Confirmed the fix mechanism with ./gradlew buildEnvironment: DAGP's own kotlin-metadata-jvm:2.2.21 dependency and the added entry resolve into the same buildscript classpath configuration, so Gradle's ordinary "highest version wins" conflict resolution upgrades both (2.2.21 -> 2.4.10).

Caveats:

  • The kotlin-metadata-jvm override is a TODO-flagged, removable shim, not a permanent fix. It should be deleted once DAGP ships #1719 and the dependency-analysis catalog entry is bumped past it.
  • Because it's pinned to this project's own Kotlin version (currently 2.4.10, which reads metadata up to 2.5.0), a future dependency shipping Kotlin 2.6.0-tagged metadata before this project's own Kotlin catches up would reintroduce the same failure.

Testing instructions

  1. Run ./gradlew buildHealth locally on this branch and confirm it completes with BUILD SUCCESSFUL (no explodeJar* metadata-version failures).
  2. Optionally, trigger the scheduled dependency-analysis pipeline manually on this branch (PIPELINE=schedules/dependency-analysis.yml) to validate against the exact CI job that was failing.
    • Manual Dependency Analysis Build: 27699

Force a newer kotlin-metadata-jvm onto the root buildscript
classpath so the dependency analysis plugin's ExplodeJarTask can
read Kotlin 2.4.0 metadata instead of failing with "Provided
Metadata instance has version 2.4.0, while maximum supported
version is 2.3.0".

The project's own Kotlin bump to 2.4.10 (#23086) makes every
module emit 2.4.0 metadata, which exceeds the 2.3.0 cap of the
kotlin-metadata-jvm:2.2.21 reader that dependency-analysis 3.17.0
bundles, so buildHealth's explodeJar tasks fail on the weekly CI
job.

DAGP resolves kotlin-metadata-jvm unshaded into the same
buildscript classpath configuration used here, so Gradle's ordinary
conflict resolution upgrades both to the higher version
(2.2.21 -> 2.4.10). Pinned to this project's own Kotlin version so
it never forces a newer kotlin-stdlib onto DAGP's classpath than the
project already uses elsewhere.

Interim workaround endorsed by the plugin author; removable once
upstream isolates kotlin-metadata-jvm onto its own worker classpath:
autonomousapps/dependency-analysis-gradle-plugin#1661
autonomousapps/dependency-analysis-gradle-plugin#1719

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ParaskP7
ParaskP7 requested a review from Copilot July 27, 2026 19:46
@ParaskP7 ParaskP7 added Core Tooling dependencies Pull requests that update a dependency file labels Jul 27, 2026
@dangermattic

Copy link
Copy Markdown
Collaborator
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@ParaskP7 ParaskP7 added this to the 27.1 milestone Jul 27, 2026
@wpmobilebot

Copy link
Copy Markdown
Contributor

Build environment changes

list
! Upgraded Dependencies
org.jetbrains.kotlin:kotlin-metadata-jvm:2.4.10, (changed from 2.2.21)
org.jetbrains.kotlin:kotlin-stdlib:2.4.10, (changed from 2.3.20)
tree
-+--- com.automattic.android.measure-builds:com.automattic.android.measure-builds.gradle.plugin:3.2.2
-|    \--- com.automattic.android:measure-builds:3.2.2
-|         +--- io.ktor:ktor-client-core:3.1.1
-|         |    \--- io.ktor:ktor-client-core-jvm:3.1.1
-|         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1
-|         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.3.20
-|         |         |              +--- org.jetbrains:annotations:13.0 -> 23.0.0
-|         |         |              +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 2.2.21 (c)
-|         |         |              \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 2.2.21 (c)
-|         |         +--- io.ktor:ktor-http:3.1.1
-|         |         |    \--- io.ktor:ktor-http-jvm:3.1.1
-|         |         |         +--- io.ktor:ktor-utils:3.1.1
-|         |         |         |    \--- io.ktor:ktor-utils-jvm:3.1.1
-|         |         |         |         +--- io.ktor:ktor-io:3.1.1
-|         |         |         |         |    \--- io.ktor:ktor-io-jvm:3.1.1
-|         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-io-core:0.6.0
-|         |         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.6.0
-|         |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.6.0
-|         |         |         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.6.0
-|         |         |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.3.20 (*)
-|         |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.3.20 (*)
-|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
-|         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
-|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.3.20 (*)
-|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- io.ktor:ktor-http-cio:3.1.1
-|         |         |    \--- io.ktor:ktor-http-cio-jvm:3.1.1
-|         |         |         +--- io.ktor:ktor-network:3.1.1
-|         |         |         |    \--- io.ktor:ktor-network-jvm:3.1.1
-|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- io.ktor:ktor-events:3.1.1
-|         |         |    \--- io.ktor:ktor-events-jvm:3.1.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- io.ktor:ktor-websocket-serialization:3.1.1
-|         |         |    \--- io.ktor:ktor-websocket-serialization-jvm:3.1.1
-|         |         |         +--- io.ktor:ktor-serialization:3.1.1
-|         |         |         |    \--- io.ktor:ktor-serialization-jvm:3.1.1
-|         |         |         |         +--- io.ktor:ktor-websockets:3.1.1
-|         |         |         |         |    \--- io.ktor:ktor-websockets-jvm:3.1.1
-|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- io.ktor:ktor-sse:3.1.1
-|         |         |    \--- io.ktor:ktor-sse-jvm:3.1.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.1
-|         |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.3.20 (*)
-|         +--- io.ktor:ktor-client-cio:3.1.1
-|         |    \--- io.ktor:ktor-client-cio-jvm:3.1.1
-|         |         +--- io.ktor:ktor-network-tls:3.1.1
-|         |         |    \--- io.ktor:ktor-network-tls-jvm:3.1.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         +--- io.ktor:ktor-client-logging:3.1.1
-|         |    \--- io.ktor:ktor-client-logging-jvm:3.1.1
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         +--- io.ktor:ktor-client-serialization:3.1.1
-|         |    \--- io.ktor:ktor-client-serialization-jvm:3.1.1
-|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
-|         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.3.20 (*)
-|         |         +--- io.ktor:ktor-client-json:3.1.1
-|         |         |    \--- io.ktor:ktor-client-json-jvm:3.1.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         +--- io.ktor:ktor-client-content-negotiation-jvm:3.1.1
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         +--- io.ktor:ktor-serialization-kotlinx-json:3.1.1
-|         |    \--- io.ktor:ktor-serialization-kotlinx-json-jvm:3.1.1
-|         |         +--- io.ktor:ktor-serialization-kotlinx:3.1.1
-|         |         |    \--- io.ktor:ktor-serialization-kotlinx-jvm:3.1.1
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
-|         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
-|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.3.20 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
-|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
++--- org.jetbrains.kotlin:kotlin-metadata-jvm:2.4.10
+|    \--- org.jetbrains.kotlin:kotlin-stdlib:2.4.10
+|         +--- org.jetbrains:annotations:13.0 -> 23.0.0
+|         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 2.2.21 (c)
+|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 2.2.21 (c)
++--- com.automattic.android.measure-builds:com.automattic.android.measure-builds.gradle.plugin:3.2.2
+|    \--- com.automattic.android:measure-builds:3.2.2
+|         +--- io.ktor:ktor-client-core:3.1.1
+|         |    \--- io.ktor:ktor-client-core-jvm:3.1.1
+|         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1
+|         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-http:3.1.1
+|         |         |    \--- io.ktor:ktor-http-jvm:3.1.1
+|         |         |         +--- io.ktor:ktor-utils:3.1.1
+|         |         |         |    \--- io.ktor:ktor-utils-jvm:3.1.1
+|         |         |         |         +--- io.ktor:ktor-io:3.1.1
+|         |         |         |         |    \--- io.ktor:ktor-io-jvm:3.1.1
+|         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-io-core:0.6.0
+|         |         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.6.0
+|         |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.6.0
+|         |         |         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.6.0
+|         |         |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.4.10 (*)
+|         |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.4.10 (*)
+|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
+|         |         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
+|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.4.10 (*)
+|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-http-cio:3.1.1
+|         |         |    \--- io.ktor:ktor-http-cio-jvm:3.1.1
+|         |         |         +--- io.ktor:ktor-network:3.1.1
+|         |         |         |    \--- io.ktor:ktor-network-jvm:3.1.1
+|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-events:3.1.1
+|         |         |    \--- io.ktor:ktor-events-jvm:3.1.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-websocket-serialization:3.1.1
+|         |         |    \--- io.ktor:ktor-websocket-serialization-jvm:3.1.1
+|         |         |         +--- io.ktor:ktor-serialization:3.1.1
+|         |         |         |    \--- io.ktor:ktor-serialization-jvm:3.1.1
+|         |         |         |         +--- io.ktor:ktor-websockets:3.1.1
+|         |         |         |         |    \--- io.ktor:ktor-websockets-jvm:3.1.1
+|         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-sse:3.1.1
+|         |         |    \--- io.ktor:ktor-sse-jvm:3.1.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.10.1
+|         |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.4.10 (*)
+|         +--- io.ktor:ktor-client-cio:3.1.1
+|         |    \--- io.ktor:ktor-client-cio-jvm:3.1.1
+|         |         +--- io.ktor:ktor-network-tls:3.1.1
+|         |         |    \--- io.ktor:ktor-network-tls-jvm:3.1.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         +--- io.ktor:ktor-client-logging:3.1.1
+|         |    \--- io.ktor:ktor-client-logging-jvm:3.1.1
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         +--- io.ktor:ktor-client-serialization:3.1.1
+|         |    \--- io.ktor:ktor-client-serialization-jvm:3.1.1
+|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
+|         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.4.10 (*)
+|         |         +--- io.ktor:ktor-client-json:3.1.1
+|         |         |    \--- io.ktor:ktor-client-json-jvm:3.1.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         +--- io.ktor:ktor-client-content-negotiation-jvm:3.1.1
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         +--- io.ktor:ktor-serialization-kotlinx-json:3.1.1
+|         |    \--- io.ktor:ktor-serialization-kotlinx-json-jvm:3.1.1
+|         |         +--- io.ktor:ktor-serialization-kotlinx:3.1.1
+|         |         |    \--- io.ktor:ktor-serialization-kotlinx-jvm:3.1.1
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
+|         |         |    \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
+|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.4.10 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
+|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
 +--- org.jetbrains.kotlinx.kover:org.jetbrains.kotlinx.kover.gradle.plugin:0.9.9
 |    \--- org.jetbrains.kotlinx:kover-gradle-plugin:0.9.9
 |         \--- org.jetbrains.kotlinx:kover-features-jvm:0.9.9
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.0 -> 2.3.20 (*)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.0 -> 2.4.10 (*)
 +--- com.autonomousapps.dependency-analysis:com.autonomousapps.dependency-analysis.gradle.plugin:3.17.0
 |    \--- com.autonomousapps:dependency-analysis-gradle-plugin:3.17.0
 |         +--- org.jetbrains.kotlin:kotlin-bom:2.2.21
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (c)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (c)
 |         +--- com.autonomousapps:graph-support:0.12.0
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (*)
 |         +--- com.autonomousapps:variant-artifacts:0.6.0
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (*)
 |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21
-|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (*)
+|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (*)
 |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (*)
 |         +--- com.squareup.moshi:moshi-kotlin:1.15.2
 |         |    +--- com.squareup.moshi:moshi:1.15.2
 |         |    |    \--- com.squareup.okio:okio:3.7.0 -> 3.16.4
 |         |    |         \--- com.squareup.okio:okio-jvm:3.16.4
-|         |    |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.20 -> 2.3.20 (*)
+|         |    |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.20 -> 2.4.10 (*)
 |         |    \--- org.jetbrains.kotlin:kotlin-reflect:1.8.21 -> 2.2.21
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.21 -> 2.4.10 (*)
 |         +--- dev.zacsweers.moshix:moshi-sealed-reflect:0.30.0
 |         |    +--- dev.zacsweers.moshix:moshi-sealed-runtime:0.30.0
-|         |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.3.20 (*)
+|         |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.4.10 (*)
 |         |    +--- com.squareup:kotlinpoet:2.1.0
 |         |    |    \--- com.squareup:kotlinpoet-jvm:2.1.0
-|         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.3.20 (*)
+|         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.10 -> 2.4.10 (*)
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.4.10 (*)
-|         \--- org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.21
+|         \--- org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.21 -> 2.4.10 (*)
 +--- androidx.navigation.safeargs.kotlin:androidx.navigation.safeargs.kotlin.gradle.plugin:2.9.8
 |    \--- androidx.navigation:navigation-safe-args-gradle-plugin:2.9.8
 |         \--- androidx.navigation:navigation-safe-args-generator:2.9.8
 |              +--- androidx.annotation:annotation:1.9.1
 |              |    \--- androidx.annotation:annotation-jvm:1.9.1
-|              |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.3.20 (*)
+|              |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.4.10 (*)
-|              +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.3.20 (*)
+|              +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.4.10 (*)
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.3.20 (c)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.4.10 (c)
 +--- com.android.application:com.android.application.gradle.plugin:9.3.1
 |    \--- com.android.tools.build:gradle:9.3.1
 |         +--- com.android.tools.build:gradle-settings-api:9.3.1
-|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         |    \--- com.android.tools.build:gradle-common-api:9.3.1
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         +--- com.android.tools.build:aaptcompiler:9.3.1
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         +--- com.android.tools.lint:lint-model:32.3.1
 |         |    \--- com.android.tools.build:builder-model:9.3.1
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         +--- androidx.databinding:databinding-compiler-common:9.3.1
 |         |    \--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.4.10 (*)
 |         +--- com.android.tools.utp:gradle-work-action-api:32.3.1
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
-|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         +--- com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.4.10 (*)
 |         +--- com.android.tools.build:builder:9.3.1
-|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         |    \--- com.android.tools.build:manifest-merger:32.3.1
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 |         \--- com.android.tools.build:gradle-api:9.3.1
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 +--- com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.3.10
 |    \--- com.google.devtools.ksp:symbol-processing-gradle-plugin:2.3.10
 |         +--- com.google.devtools.ksp:symbol-processing-api:2.3.10
-|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.3.20 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.3.20 -> 2.4.10 (*)
 |         \--- com.google.devtools.ksp:symbol-processing-common-deps:2.3.10
-|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.3.20 (*)
+|              \--- org.jetbrains.kotlin:kotlin-stdlib:2.3.20 -> 2.4.10 (*)
 +--- com.android.legacy-kapt:com.android.legacy-kapt.gradle.plugin:9.3.1
 |    \--- com.android.tools.build:gradle-kotlin:9.3.1
-|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.3.20 (*)
+|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.2.10 -> 2.4.10 (*)
 +--- androidx.room:androidx.room.gradle.plugin:2.8.4
 |    \--- androidx.room:room-gradle-plugin:2.8.4
-|         +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.3.20 (*)
+|         +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.4.10 (*)
-|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.3.20 (c)
+|         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.4.10 (c)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a build-time workaround to address dependency-analysis-gradle-plugin (buildHealth) failures when consuming Kotlin 2.4.x metadata, by ensuring a compatible kotlin-metadata-jvm is available on the buildscript classpath.

Changes:

  • Add org.jetbrains.kotlin:kotlin-metadata-jvm to the Gradle version catalog, aligned to the project’s Kotlin version.
  • Add a root buildscript classpath dependency to override/upgrade the metadata reader used during dependency analysis.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
gradle/libs.versions.toml Adds a kotlin-metadata-jvm catalog entry tied to kotlin-main.
build.gradle Adds a buildscript classpath dependency intended to override DAGP’s metadata reader.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wpmobilebot

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in Jetpack Android by scanning the QR code below to install the corresponding build.

App NameJetpack Android
Build TypeDebug
Versionpr23151-26d8708
Build Number1498
Application IDcom.jetpack.android.prealpha
Commit26d8708
Installation URL4qcb5oddmn0p8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in WordPress Android by scanning the QR code below to install the corresponding build.

App NameWordPress Android
Build TypeDebug
Versionpr23151-26d8708
Build Number1498
Application IDorg.wordpress.android.prealpha
Commit26d8708
Installation URL7dkla9qdj0ar8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@ParaskP7
ParaskP7 marked this pull request as ready for review July 27, 2026 20:16
@ParaskP7
ParaskP7 requested a review from a team as a code owner July 27, 2026 20:16
@ParaskP7
ParaskP7 requested review from nbradbury and wzieba and removed request for a team July 27, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Core dependencies Pull requests that update a dependency file Tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants